package arr

/*
计数排序
时间复杂度：O(n+c) n是nums长度，c是元素值大小（本题不超过1000）
空间复杂度:O(c)
*/
func largestUniqueNumber(nums []int) int {
	var arr [1005]int
	for _, v := range nums {
		arr[v]++
	}
	for i := 1000; i >= 0; i-- {
		if arr[i] == 1 {
			return i
		}
	}
	return -1
}

/*
hash
时间复杂度:O(N)
空间复杂度:O(N)
*/
func largestUniqueNumber1(nums []int) int {
	m := make(map[int]int)
	for _, v := range nums {
		m[v]++
	}
	result := -1
	for k, v := range m {
		if v == 1 && k > result {
			result = k
		}
	}
	return result
}
